package cn.itrip.biz.service;


import cn.itrip.beans.pojo.ItripHotelOrder;
import cn.itrip.beans.pojo.ItripHotelRoom;
import cn.itrip.beans.vo.OrderLinkUserVo;
import cn.itrip.beans.vo.OrderRoomHotelVO;
import cn.itrip.beans.vo.OrderRoomVo;
import cn.itrip.beans.vo.StoreOrderRommHotelVo;
import cn.itrip.beans.vo.tokentakevo.OrderAndLinkUserVo;
import cn.itrip.common.Page;

import java.util.List;

/**
 * <p>
 * 订单表 服务类
 * </p>
 *
 * @author 滕召伟
 * @since 2020-02-27
 */
public interface IItripHotelOrderService {
    /**
     * 全部订单
     *
     * @param pageNo   第几页
     * @param pageSize 每页多少行
     * @return
     */
    Page<ItripHotelOrder> listHotelOrder(Integer pageNo, Integer pageSize, ItripHotelOrder itripHotelOrder);

    /**
     * 订单详情
     *
     * @param orderId
     * @return
     */
    OrderRoomVo getOrderId(Long orderId);

    /**
     * 入住信息
     *
     * @param orderId
     * @return
     */
    OrderRoomHotelVO getOrderRommHtoId(Long orderId);

    /**
     * 获取房型ID
     *
     * @param hotelId
     * @param orderId
     * @return
     */
    ItripHotelRoom getHotelId(Long hotelId, Long orderId);

    /**
     * 获取订单和用户
     *
     * @param Id
     * @return
     */
    OrderLinkUserVo getOrderLinkUserVoId(Long Id);

    /**
     * 查询房间信息
     *
     * @param itripHotelOrder
     * @return
     */
    StoreOrderRommHotelVo getHotelProductStoreDic(ItripHotelOrder itripHotelOrder);

    /**
     * 新增订单
     *
     * @param orderAndLinkUserVo
     * @return
     */
    void addHotelOrder(OrderAndLinkUserVo orderAndLinkUserVo);

    /**
     * 修改订单
     *
     * @param orderAndLinkUserVo
     */
    void updateHotelOrder(OrderAndLinkUserVo orderAndLinkUserVo);


    /**
     * 查询超过两个小时未支付的订单
     *
     * @return
     */
    void listTimedTask();

    /**
     * 查询待支付订单中 退房时间已到期的改为已消费
     * @return
     */
    void listOrder();
}
